热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

技术标准|今天下午_C语言GNU中汇编文件.s与.S的差异

篇首语:本文由编程笔记#小编为大家整理,主要介绍了C语言GNU中汇编文件.s与.S的差异相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了C语言GNU中汇编文件.s与.S的差异相关的知识,希望对你有一定的参考价值。




本人就职于国际知名终端厂商,负责modem芯片研发。
在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。


博客内容主要围绕:
       5G/6G协议讲解
       算力网络讲解(云计算,边缘计算,端计算)
       高级C语言讲解
       Rust语言讲解



文章目录


  • GNU中汇编文件.s与.S的差异
    • 问题出在文件名上



GNU中汇编文件.s与.S的差异

今天下午学习ARM64汇编时,写了一段汇编程序,使用gcc编译总是说我没有定义 MY_LABEL,


问题代码如下,

#define MY_LABEL 0x20
.section .data
.section .text
.globl main
main:
ldr x7,=MY_LABEL
ret

问题出在文件名上

下面是GNU手册中的描述,



file.s Assembler code.




file.S
file.sx Assembler code that must be preprocessed.


问题找到了,因为我的文件名是 .s后缀 ,所以GNU编译器不会对汇编文件中的 #include、#if、#elif、#else、#endif、#define这些预处理指令做解析

将文件名换成 .S后缀或者 .sx后缀,问题解决了,编译成功。





这里是从善若水的博客,感谢您的阅读📕📕📕






推荐阅读
author-avatar
XIE绍雄
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有